const axios = require('axios');

// 模拟前端axios拦截器的行为
const mockAxios = axios.create({
  baseURL: 'http://localhost:3000/api'
});

// 添加响应拦截器，模拟前端的行为
mockAxios.interceptors.response.use(
  (response) => {
    // 前端axios插件直接返回response.data
    return response.data;
  },
  (error) => {
    return Promise.reject(error);
  }
);

async function testFrontendBehavior() {
  try {
    console.log('测试前端axios行为...\n');
    
    // 测试包列表
    console.log('1. 测试包列表接口:');
    const packagesResponse = await mockAxios.get('/packages');
    console.log('- 返回类型:', typeof packagesResponse);
    console.log('- 有items字段:', 'items' in packagesResponse);
    console.log('- items类型:', Array.isArray(packagesResponse.items) ? `数组，长度: ${packagesResponse.items.length}` : typeof packagesResponse.items);
    
    // 测试标签列表
    console.log('\n2. 测试标签列表接口:');
    const tagsResponse = await mockAxios.get('/tags');
    console.log('- 返回类型:', typeof tagsResponse);
    console.log('- 是数组:', Array.isArray(tagsResponse));
    console.log('- 长度:', Array.isArray(tagsResponse) ? tagsResponse.length : 'N/A');
    
    // 测试讨论列表
    console.log('\n3. 测试讨论列表接口:');
    const discussionsResponse = await mockAxios.get('/discussions');
    console.log('- 返回类型:', typeof discussionsResponse);
    console.log('- 有items字段:', 'items' in discussionsResponse);
    console.log('- items类型:', Array.isArray(discussionsResponse.items) ? `数组，长度: ${discussionsResponse.items.length}` : typeof discussionsResponse.items);
    
    console.log('\n✅ 所有测试通过！前端应该可以正常工作了。');
    
  } catch (error) {
    console.error('❌ 测试失败:', error.message);
  }
}

testFrontendBehavior();